Thực đơn
Windows_Registry Cấu trúcSổ đăng ký chứa hai yếu tố cơ bản: khóa và giá trị. Khóa registry là các đối tượng chứa tương tự như các thư mục. Giá trị registry là các đối tượng không chứa tương tự như các tệp. Khóa có thể chứa giá trị và khóa con. Các khóa được tham chiếu với một cú pháp tương tự như tên đường dẫn của Windows, sử dụng dấu gạch chéo ngược để biểu thị mức phân cấp. Các khóa phải có tên không phân biệt chữ hoa chữ thường và không có dấu gạch chéo ngược.
Hệ thống phân cấp của các khóa đăng ký chỉ có thể được truy cập từ một tay cầm khóa gốc đã biết (ẩn danh nhưng có giá trị hiệu quả là một số xử lý số không đổi) được ánh xạ tới nội dung của khóa đăng ký được tải trước bởi kernel từ "hive" được lưu trữ hoặc đến nội dung của khóa con trong khóa gốc khác hoặc được ánh xạ tới dịch vụ đã đăng ký hoặc DLL cung cấp quyền truy cập vào các khóa con và giá trị được chứa.
Ví dụ HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows dùng để chỉ khóa con "Windows" của khóa con "Microsoft" của khóa con "Phần mềm" của khóa gốc HKEY_LOCAL_MACHINE.
Có bảy khóa gốc được xác định trước, được đặt tên theo truyền thống theo các thẻ điều khiển không đổi được xác định trong API Win32 hoặc bằng các chữ viết tắt đồng nghĩa (tùy thuộc vào ứng dụng):
Giống như các tệp và dịch vụ khác trong Windows, tất cả các khóa registry có thể bị hạn chế bởi danh sách kiểm soát truy cập (ACL), tùy thuộc vào đặc quyền người dùng hoặc mã thông báo bảo mật mà ứng dụng có được hoặc theo chính sách bảo mật hệ thống được thi hành bởi hệ thống (những hạn chế này có thể được xác định trước bởi chính hệ thống và được cấu hình bởi quản trị viên hệ thống cục bộ hoặc bởi quản trị viên tên miền). Người dùng, chương trình, dịch vụ hoặc hệ thống từ xa khác nhau chỉ có thể thấy một số phần của cấu trúc phân cấp hoặc phân cấp khác nhau từ cùng một khóa gốc.
Giá trị registry là các cặp tên / dữ liệu được lưu trữ trong các khóa. Giá trị registry được tham chiếu riêng từ khóa đăng ký. Mỗi giá trị registry được lưu trữ trong khóa đăng ký có một tên duy nhất có trường hợp chữ cái không đáng kể. Các hàm Windows API truy vấn và thao tác các giá trị registry lấy các tên giá trị riêng biệt với đường dẫn khóa và / hoặc xử lý xác định khóa cha. Các giá trị registry có thể chứa dấu gạch chéo ngược trong tên của chúng, nhưng làm như vậy khiến chúng khó phân biệt với các đường dẫn chính khi sử dụng một số chức năng Windows Registry API cũ (việc sử dụng bị phản đối trong Win32).
Thuật ngữ này hơi sai lệch, vì mỗi khóa registry tương tự như một mảng kết hợp, trong đó thuật ngữ tiêu chuẩn sẽ đề cập đến phần tên của mỗi giá trị đăng ký là "khóa". Các thuật ngữ này được lưu giữ từ registry 16 bit trong Windows 3, trong đó các khóa registry không thể chứa các cặp tên/dữ liệu tùy ý, mà chỉ chứa một giá trị không tên (phải là một chuỗi). Theo nghĩa này, registry Windows 3 giống như một mảng kết hợp duy nhất, trong đó các khóa (theo nghĩa của cả 'khóa đăng ký' và 'khóa mảng liên kết') đã tạo thành một hệ thống phân cấp và các giá trị đăng ký là tất cả các chuỗi. Khi registry 32 bit được tạo, khả năng bổ sung của việc tạo nhiều giá trị được đặt tên cho mỗi khóa cũng như vậy và ý nghĩa của các tên có phần bị bóp méo.[4] Để tương thích với hành vi trước đó, mỗi khóa registry có thể có giá trị "mặc định", có tên là chuỗi trống.
Mỗi giá trị có thể lưu trữ dữ liệu tùy ý với độ dài và mã hóa thay đổi, nhưng được liên kết với một loại ký hiệu (được xác định là hằng số) xác định cách phân tích dữ liệu này. Các loại tiêu chuẩn là:
Type ID | Symbolic type name | Meaning and encoding of the data stored in the registry value |
---|---|---|
0 | REG_NONE | No type (the stored value, if any) |
1 | REG_SZ | A string value, normally stored and exposed in UTF-16LE (when using the Unicode version of Win32 API functions), usually terminated by a NUL character |
2 | REG_EXPAND_SZ | An "expandable" string value that can contain environment variables, normally stored and exposed in UTF-16LE, usually terminated by a NUL character |
3 | REG_BINARY | Binary data (any arbitrary data) |
4 | REG_DWORD / REG_DWORD_LITTLE_ENDIAN | A DWORD value, a 32-bit unsigned integer (numbers between 0 and 4,294,967,295 [232 – 1]) (little-endian) |
5 | REG_DWORD_BIG_ENDIAN | A DWORD value, a 32-bit unsigned integer (numbers between 0 and 4,294,967,295 [232 – 1]) (big-endian) |
6 | REG_LINK | A symbolic link (UNICODE) to another registry key, specifying a root key and the path to the target key |
7 | REG_MULTI_SZ | A multi-string value, which is an ordered list of non-empty strings, normally stored and exposed in UTF-16LE, each one terminated by a NUL character, the list being normally terminated by a second NUL character. |
8 | REG_RESOURCE_LIST | A resource list (used by the Plug-n-Play hardware enumeration and configuration) |
9 | REG_FULL_RESOURCE_DESCRIPTOR | A resource descriptor (used by the Plug-n-Play hardware enumeration and configuration) |
10 | REG_RESOURCE_REQUIREMENTS_LIST | A resource requirements list (used by the Plug-n-Play hardware enumeration and configuration) |
11 | REG_QWORD / REG_QWORD_LITTLE_ENDIAN | A QWORD value, a 64-bit integer (either big- or little-endian, or unspecified) (introduced in Windows XP) |
Các khóa ở cấp gốc của cơ sở dữ liệu phân cấp thường được đặt tên theo định nghĩa API Windows của chúng, tất cả đều bắt đầu bằng "HKEY".[2] Chúng thường được viết tắt thành một tên ngắn ba hoặc bốn chữ cái bắt đầu bằng "HK" (ví dụ: HKCU và HKLM). Về mặt kỹ thuật, chúng là các thẻ điều khiển được xác định trước (với các giá trị không đổi đã biết) cho các khóa cụ thể được duy trì trong bộ nhớ hoặc được lưu trữ trong các tệp trung tâm được lưu trữ trong hệ thống tệp cục bộ và được nạp bởi nhân hệ thống khi khởi động và sau đó được chia sẻ (với các quyền truy cập khác nhau) giữa tất cả các quy trình đang chạy trên hệ thống cục bộ, hoặc được tải và ánh xạ trong tất cả các quy trình bắt đầu trong phiên người dùng khi người dùng đăng nhập vào hệ thống.
Các khóa HKEY_LOCAL_MACHINE (dữ liệu cấu hình dành riêng cho máy cục bộ) và các khóa HKEY_CURRENT_USER (dữ liệu cấu hình dành riêng cho người dùng) có cấu trúc tương tự nhau; các ứng dụng người dùng thường tìm kiếm cài đặt của họ bằng cách kiểm tra đầu tiên chúng trong "HKEY_CURRENT_USER \ Software \ Vendor name \ Application's \ \ \ [cần dẫn nguồn]. Tuy nhiên, điều ngược lại có thể áp dụng cho các cài đặt chính sách do quản trị viên thực thi trong đó HKLM có thể được ưu tiên hơn HKCU. Chương trình Logo Windows có các yêu cầu cụ thể về nơi có thể lưu trữ các loại dữ liệu người dùng khác nhau và phải tuân theo khái niệm đặc quyền tối thiểu để không cần truy cập cấp quản trị viên để sử dụng ứng dụng. [lower-alpha 1] [5]
HKLM, HKEY_LOCAL_MACHINE viết tắt các cài đặt dành riêng cho máy tính cục bộ.[6]
Khóa được định vị bởi HKLM thực tế không được lưu trữ trên đĩa, nhưng được duy trì trong bộ nhớ bởi nhân hệ thống để ánh xạ cho tất cả các khóa con khác. Các ứng dụng không thể tạo thêm bất kỳ khóa con nào. Trên Windows NT, khóa này chứa bốn khóa con, "SAM", "SECURITY", "SYSTEM" và "SOFTWARE", được tải vào lúc khởi động trong các tệp tương ứng của chúng nằm trong thư mục%SystemRoot%\System32\config. Một khóa con thứ năm, "HARDWARE", không ổn định và được tạo ra một cách linh hoạt, và như vậy không được lưu trữ trong một tệp (nó hiển thị chế độ xem của tất cả các thiết bị Plug-and-Play hiện được phát hiện). Trên Windows Vista trở lên, một khóa con thứ sáu và thứ bảy, "COMPONENTS" và "BCD", được ánh xạ vào bộ nhớ theo kernel theo yêu cầu và được tải từ% SystemRoot%\system32\config\COMPONENTS hoặc từ dữ liệu cấu hình khởi động, \boot\BCD trên phân vùng hệ thống.
Thực đơn
Windows_Registry Cấu trúcLiên quan
Windows 8.1 Windows 10 Windows XP Windows 7 Windows 11 Windows 8 Windows Vista Windows Media Player Windows Phone 8.1 Windows MeTài liệu tham khảo
WikiPedia: Windows_Registry http://msdn.microsoft.com/msdnmag/issues/1100/Regi... http://www.microsoft.com/downloads/details.aspx?di... http://www.microsoft.com/technet/archive/win95/rk3... http://blogs.msdn.com/oldnewthing/archive/2008/01/... https://docs.microsoft.com/en-us/windows/desktop/S... https://msdn.microsoft.com/en-us/library/aa384253.... https://msdn.microsoft.com/en-us/library/ms970651.... https://technet.microsoft.com/en-us/library/cc9590... https://web.archive.org/web/20030415200916/http://... https://web.archive.org/web/20080207122429/http://...